// app.js
App({
  onLaunch() {
    // 展示本地存储能力
    const logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)
    this.login();
  },
  //如果登陆成功，全局数据里有 userInfo、token、openid
  globalData: {
    userInfo: null,
    token:'',
    is_login : false
  },
  //判断是否登录,如果没有登录,去登录
  checkLogin(){
    var token = wx.getStorageSync('token')
    var userInfo = wx.getStorageSync('user')
    // 必须token与userInfo同时存在才算登录成功
    if(token&&userInfo){
        this.globalData.token = token
        this.globalData.userInfo={
          nickName : userInfo.nickName,
          avatarUrl : userInfo.avatarUrl
        }
        return true;
    }else{
        return false;
    }
  },
  login() {// 登录
    let that = this;
    wx.showModal({   //用户授权弹窗
      title: '国瓷小程序想要申请以下权限',
      content: '获得您的用户信息(昵称、头像等)',
      success(res) {
        //同意授权
        if (res.confirm) {
          wx.getUserProfile({
            desc: '获取你的昵称、头像、地区及性别',
            success: user => {  //获取成功
              console.log(user.userInfo)//控制台输出结果
              wx.setStorageSync('user', user.userInfo)
              //把 用户的昵称和头像 设成全局变量
              that.globalData.userInfo={
                nickName : user.userInfo.nickName,
                avatarUrl : user.userInfo.avatarUrl
              }
              //将用户数据传递到后端，上传至数据库
              wx.login({ 
                success:res=>{
                  // 拿token,mp-login
                  wx.request({
                    url: `http://localhost:2023/auth/mp-login/${res.code}`,
                    success:res=>{
                      console.log(res)                
                      if(res.statusCode==200){
                        //1、token 存储在本地storage中
                        wx.setStorageSync('token', res.data)
                         //2、提示用户登陆成功
                        wx.showToast({
                          title: '登录成功',
                          icon: 'success',
                          duration: 2000//持续的时间
                        })
                        that.globalData.is_login = true
                      } 
                    },
                    fail:err=>{
                      console.log(err)
                    }
                  })
                },
                fail:err=>{
                  console.error(err)
                }
              })

            },
            fail: res => {
              //获取失败
              wx.showToast({
                title: '登录失败',
                icon: 'error',
                duration: 2000
              });
            }
          });
        } else if (res.cancel) {
          //拒绝授权
          wx.showToast({
            title: '登录失败',
            icon: 'error',
            duration: 2000
          });
        }
      }
    })
  }
})